package com.bridge.interceptor;

import com.bridge.consistency.ThreadContext;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * @author Jay
 * @version v1.0
 * @description 拦截器，为了清除线程持有的镜像版本号，避免tomcat的线程池的线程复用后使用旧的镜像版本号的问题
 * <p>
 * 请将此过滤器放在第一个顺序位执行，这样做是避免在其他拦截器中使用了配置项，在清除的时候出现配置项获取异常的情况
 * </>
 * @date 2019-09-17 11:10
 */
public class CleanMirrorCacheInterceptor extends HandlerInterceptorAdapter {


    /**
     * This implementation is empty.
     *
     * @param request
     * @param response
     * @param handler
     * @param ex
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
        // 清除线程持有的镜像版本号
        ThreadContext.removeMirrorVersion();
    }
}
